package cn.lcsjsxy.junit.year2023.real;

import java.util.regex.Pattern;

/**
 * 题目3：
 * 邮箱注册需要填写邮箱地址和密码。其中要求邮箱格式“登录名@主机名.域名”，登录名为5个字母，主机名固定为下面2个163、126，域名为com或com.cn。密码为6个（含6）以上数字组成。
 * 填写正确则提示“信息正确”，否则根据实际情况提示“**不符合要求”（**为邮箱地址或密码）。
 * 编写程序代码，使用JUnit框架编写测试类对编写的程序代码进行测试，测试类中设计最少的测试数据满足语句覆盖测试，每条测试数据需要在测试类中编写一个测试方法。
 * 使用assertThat中equalTo断言判断输出文字期望结果值和实际返回值是否一致。
 */
public class EmailRegistration {

    public static String validateRegistration(String email, String password) {
        // 验证邮箱格式
        if (!isValidEmail(email)) {
            return "邮箱地址不符合要求";
        }

        // 验证密码格式
        if (!isValidPassword(password)) {
            return "密码不符合要求";
        }

        return "信息正确";
    }

    // 验证邮箱格式
    private static boolean isValidEmail(String email) {
        // 正则表达式匹配邮箱格式
        String emailRegex = "^[a-zA-Z]{5}@(163|126)\\.(com|com\\.cn)$";
        return Pattern.matches(emailRegex, email);
    }

    // 验证密码格式
    private static boolean isValidPassword(String password) {
        // 密码为6位及以上数字
        String passwordRegex = "^\\d{6,}$";
        return Pattern.matches(passwordRegex, password);
    }
}